package org.bspv.pharma.business;

import org.bspv.pharma.model.User;
import org.springframework.dao.DataAccessException;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

/**
 * Service métier pour la sécurité.
 * 
 * @author guillaume
 * 
 */
public interface SecurityBusinessService {

    /**
     * 
     * @param username
     * @return
     * @throws UsernameNotFoundException
     * @throws DataAccessException
     */
    UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException;

    /**
     * Retourne l'utilisateur dont l'identifiant est en parametre.
     * 
     * @param id
     *            Identifiant de l'utilisateur
     * @return Utilisateur
     */
    User findUserById(Long id);
}
